// ./routes/user.routes.js

const express = require('express');
const router = express.Router();
const upload = require('../utils/multer.util'); // 引入上传工具
// 引入用户相关的业务逻辑控制器
const userController = require('../controllers/user.controller');
// 注意：Token 验证中间件通常在 app.js 中注册到该路由前缀，
// 但为了结构清晰，我们也可以在每个需要保护的路由上显式添加。
// 如果您在 app.js 中已经在 `/api/user` 上使用了 authenticateToken，
// 那么这里就无需重复引入。这里假设在 app.js 中已全局应用于此路由：
// app.use('/api/user', authenticateToken, userRoutes);

// -----------------------------------------------------------
// 路由定义
// -----------------------------------------------------------

/**
 * @route GET /api/user/profile
 * @desc 获取当前登录用户的个人资料
 * @access Private (需要Token)
 */
router.get('/profile', userController.getProfile);

/**
 * @route PUT /api/user/profile
 * @desc 更新当前登录用户的个人资料
 * @access Private (需要Token)
 */
router.put('/profile', userController.updateProfile);

/**
 * @route POST /api/user/change-password
 * @desc 修改当前登录用户的密码
 * @access Private (需要Token)
 */
router.post('/change-password', userController.changePassword);

/**
 * @route GET /api/user/logs
 * @desc 获取当前用户的操作日志（示例）
 * @access Private (需要Token)
 */
router.get('/logs', userController.getUserLogs);

/**
 * @route POST /api/user/upload-avatar
 * @desc 上传用户头像
 * @access Private (需要Token)
 */
router.post('/upload-avatar', upload.single('avatar'), userController.uploadAvatar);

module.exports = router;
